Public key cryptography is one of the core cryptographic technologies for various aspects of computer security. It is well known that to use it effectively, two problems must be solved: the protection of private keys and the distribution/validation of public keys. It is also well known that the standard approach to the latter problem is to use digital (X.509) certificates that bind the identities of public key owners to their public keys. Being digitally signed, certificates enable verification of that binding, i.e., the ownership and correctness of the public keys. At the time of this invention, the standard solution for the distribution and validation of certificates and their public keys is the concept of public key infrastructure (PKI).
At the time of this invention, the security of users, their applications, data and transactions, especially when used over the open Internet, is a major concern. Many solutions exist, all providing standard security services: entity identification, entity authentication, data confidentiality, data integrity, access control, authorization, and non-repudiation. X.509 certificates and PKI is the core enabling technology and the supporting infrastructure for these security services.
But, at the time of this invention, two new categories of services are gaining importance and global attention: user privacy and anonymity. Privacy is defined as a property of an overall system in which identities, application data, and transactions are known only to authorized transaction partners and service providers and not to unauthorized and illegal users, such as hackers. Anonymity is defined as a property of the system where even authorized users and transaction partners cannot learn about the identities of their transaction partners.
Standard X.509 certificates cannot be used if privacy and anonymity services are required. The reasons are that, first, they contain full and explicit name and other identifying attributes of the certificate owner, the so-called Distinguished Name (DN) and second, they also contain the full identity of their issuer. Therefore, both identities are recognized by all transaction parties, what violates privacy and anonymity of users.
Another important trend at the time of this invention is the introduction of so-called peer-to-peer transactions. Those are transactions that are executed directly between two parties and without support or participation of any third party. These transactions are more efficient than transactions performed with third-party assistance. Not only that they are performed directly between transaction parties, but they also do not use complex and cumbersome protocols of third-party providers. In addition to efficiency, such transactions also provide user privacy, as there are no parties involved in a transaction other than participants themselves. With a suitable selection of identifying attributes for the parties involved, such transactions can also provide user anonymity.
Besides the inadequacy of X.509 certificates for applications and transactions where user privacy and anonymity is required, another problem is that when providing security services, most, if not all of those services, are provided by or require the assistance of (trusted) third parties. Such arrangement has no anonymity of users, as third parties learn everything about the users participating in the transactions, sometimes even their sensitive personal data, such as cryptographic keys, bankcard numbers, etc. It is clear that PKI cannot be used for peer-to-peer transactions, as it requires the use of Certification Authorities (CAs) as trusted third parties for validation of certificates.
Finally, another important concept related to X.509 certificates and PKI is trust. With PKI roles and protocols, trust must be placed in all CAs. Not only trust that they will perform their functions correctly and in a timely manner, but also that they will not malfunction or cheat, due to illegal modifications or destruction of their software and data. Trust in third parties is the requirement for all standard security services and goes directly against the concept of peer-to-peer applications and transactions. With such transactions, not only that there are no other parties participating in transactions, but there is no need to trust any component or function of the system. All aspects of each transaction—the identities of parties in the transaction, the correctness of transaction data, the validity of a transaction, the date/time of the transaction, and the authorization to participate in, and to perform, the transaction—must be verified only by the participating parties themselves. Obviously, this approach is not possible with PKI and X.509 certificates, as all aspects of transaction verification depend upon the verification of X.509 certificates, which is done using the assistance of trusted third parties.
In conclusion, for peer-to-peer transactions that require security, privacy, and anonymity, the standard components of X.509 certificates and PKI cannot be used. Because certificates are the backbone of all security services, it is obvious that management and use of certificates require new solutions and new infrastructure without assistance of third parties and their protocols. This invention describes such new type of certificates, new type of peer-to-peer certificate protocols, and new infrastructure for management and use of certificates based on globally available, distributed, append-only public ledger without assistance of any third party.
The certificates infrastructure described in this invention is a component of a larger and more general system that supports peer-to-peer exchange of secure, private, and anonymous data and transactions in an open Internet environment using a public ledger. In principle, a public ledger is a public archive of all transactions that have been performed in the system, and its main purpose is to provide data, mechanisms and protocols to verify these transactions without assistance of third parties. The transactions individually or sometimes grouped in blocks are cryptographically encapsulated and mutually linked in a functional, cryptographic or time sequence. This concept of the public ledger is known as a blockchain. Thus, conceptually broader system supports secure, private, and anonymous peer-to-peer transactions based on a concept of public ledger (blockchain) used to verify transactions. This system is called “Blockchain Information eXchange” (BIX) system.